package com.spc.car.data.service.project;

import com.spc.car.data.domain.bond.BiddingBondCollectVO;
import com.spc.car.data.domain.bond.BiddingBondReturnVO;
import com.spc.car.data.domain.project.dto.BiddingBondCollectDTO;
import com.spc.car.data.domain.project.dto.BiddingBondReturnDTO;
import com.spc.car.data.entity.project.ProjectBiddingBond;
import com.baomidou.mybatisplus.extension.service.IService;
import com.spc.car.data.entity.sys.SysUser;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * <p>
 * 投标项目保证金 服务类
 * </p>
 *
 * @author 
 * @since 2020-04-23
 */
public interface ProjectBiddingBondService extends IService<ProjectBiddingBond> {

    /**
     * 保证金收取
     * @param bondCollectVO
     * @param user
     */
    void biddingBondCollect(BiddingBondCollectVO bondCollectVO,
                            SysUser user);

    /**
     * 保证金退还
     * @param bondReturnVO
     * @param user
     */
    void biddingBondReturn(BiddingBondReturnVO bondReturnVO,
                           SysUser user);

    /**
     * 获取保证金收取/待收取列表
     * @param projectCode
     * @param sectionCode
     * @param status
     * @return
     */
    List<BiddingBondCollectDTO> listBiddingBondCollect(@NotBlank String projectCode,
                                                       @NotBlank String sectionCode,
                                                       @NotBlank String status);

    /**
     * 获取保证金退还/待退还列表
     * @param projectCode
     * @param sectionCode
     * @param status
     * @return
     */
    List<BiddingBondReturnDTO> listBiddingBondReturn(@NotBlank String projectCode,
                                                     @NotBlank String sectionCode,
                                                     @NotBlank String status);
}
